package com.fmc123.base.utils;

import java.lang.reflect.Field;
import java.util.Collection;

/**
 * sql帮助类
* @ClassName: SqlHelper
* @Description: TODO 
* @author fmc
* @date 2015年11月22日下午5:05:42
*
 */
public class SqlHelper {

  /**
   * 返回sql语句中from后面的部分
   * @param sql
   * @return
   */
  public static String removeSelect(String sql){
    int indexOfSelect=sql.toLowerCase().indexOf("from");
    return sql.substring(indexOfSelect);
  }
  
  /**
   * 根据实体类字段设置sql参数
   * @param entity
   * @return
   */
  public static <T> String setParameters(T entity){
    StringBuffer sb=new StringBuffer();
    Field[] fields=entity.getClass().getDeclaredFields();
    for(Field field:fields){
      Object value=Reflections.getFieldValue(entity, field.getName());
      if(null!=value&&!"serialVersionUID".equals(field.getName())){
        if(value instanceof Collection<?>){
           continue;
        }else if(value instanceof String){
           if(!StringUtils.isPresent((String)value)){
             continue;
           }
        }
        if(sb.length()>0){
          sb.append(" and ");
        }
          sb.append(field.getName()+" like '"+value+"%'");          
      }
    }
    return sb.toString();
  }
}
